package com.example.leetcode.prcatice;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
 * 给你一个字符串 s，请你返回 两个相同字符之间的最长子字符串的长度 ，计算长度时不含这两个字符。如果不存在这样的子字符串，返回 -1 。
 *
 * 子字符串 是字符串中的一个连续字符序列。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/largest-substring-between-two-equal-characters
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test1624 {


    public int maxLengthBetweenEqualCharacters(String s) {
        int min = -1;
        Map<Character,Integer> map = new HashMap<>();
        for (int i =0 ;i<s.length();i++){
            char c = s.charAt(i);
            if (map.containsKey(c)){
                Integer index = map.get(c);
                min = Math.max(i - index -1,min);
            }else{
                map.put(c,i);
            }
        }
        return min;
    }


    public static void main(String[] args) {
        Test1624 t = new Test1624();
        String s = "cabbac";
        System.out.println(t.maxLengthBetweenEqualCharacters(s));
    }
}
